/**
 * 
 */
package com.atguigu.java2;

import org.junit.Test;

/**
 * @Description
 * @author zych1108
 * @version
 * @date 2021年6月5日下午4:17:33
 */
/*
 * 包装类的使用：
 * 1.java提供了8中基本数据类型对应的包装类，使得基本数据类型的变量具有类的特征
 * 
 * 2.掌握：基本数据类、包装类、String三者之间的相互转换
 * 
 * 
 */
public class WrapperTest {
	
	//String类型--->基本数据类型、包装类:调用包装类的parseXxx()
	
	@Test
	public void test5() {
		String str1 = "123";
	
		int num2 = Integer.parseInt(str1);
		System.out.println(num2 + 1);
	
		String str2 = "true";
		boolean b = Boolean.parseBoolean(str2);
		System.out.println(b);

		String str3 = "true1";
		boolean b1 = Boolean.parseBoolean(str3);
		System.out.println(b1);//不会报异常，但结果为false.
	}
	
	
	
	
	
	
	
	
	//基本数据类型、包装类---->String类型：调用String重载的valueof(Xxx xxx)
	@Test
	public void test4(){
		
		int num1 = 10;
		//方式一：做连接运算
		String str1 = num1 + "";
		//f方式二：
		float f1 = 12.3f;
		String str2 =String.valueOf(f1);//"12.3"
		
		Double d1 = new Double(12.4);
		String str3 = String.valueOf(d1);//"12.4"
	}
	
	
	
	/*
	 * JDK5.0 新特性：自动装箱与自动拆箱
	 *
	 */
	@Test
	public void test3() {
		int num1 = 10;
	    //基本数据类型-->包装类  才能之间调method()方法
		method(num1);
		
		//自动装箱：基本数据类型-->包装类
		int num2 = 10;
		Integer in1 = num2;//不用构造器 去new了
		
		boolean b1 = true;
		Boolean b2 = b1;
		
		//自动拆箱：包装类---->基本数据类型
		int num3 = in1;
		
	}
	
	public void method(Object obj) {
		
	}
	
	
	
	//包装类---->基本数据类型:调用包装类的xxxValue()
	@Test
	public void test2() {
		Integer in1 = new Integer(12);
		
		int i1 = in1.intValue();
		System.out.println(i1 + 1);
		
		Float f1 = new Float(12.3);
		float f2 = f1.floatValue();
		System.out.println(f2 + 1);
	}
	
	
	
	
	
	
	
	
	
	//基本数据类型--->包装类:调用包装类的构造器
	@Test
	public void test1() {
		
		int num1 = 10;
		
		Integer in1 = new Integer(num1);
		System.out.println(in1.toString());
		
		Integer in2 = new Integer("123");
		System.out.println(in2.toString());
		
//		Integer in2 = new Integer("123abc");
//		System.out.println(in2.toString());//这个报异常 不是纯数
		
		Float f1 = new Float(12.3f);
		Float f2 = new Float("12.3");
		System.out.println(f1);
		System.out.println(f2);
		
		Boolean b1 = new Boolean(true);
		Boolean b2 = new Boolean("true");
		Boolean b3 = new Boolean("true123");//false     
		Boolean b4 = new Boolean("TRue");//true   忽略大小写和true一样 就是true
		
		Order order = new Order();
		System.out.println(order.isMale);//false  这是基本数据类型的默认值
		System.out.println(order.IsFemale);//null 这是引用数据类型的默认值
	}
}


class Order{
	 
	boolean isMale;//基本数据类型
	Boolean IsFemale;//引用数据类型
}


